package com.projeto.bola.web.agendaPartida;

import java.io.IOException;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import com.projeto.bola.web.grupoEsporte.GrupoEsporte;
import com.projeto.bola.web.grupoEsporte.GrupoEsporteRN;



@ManagedBean(name="agendaPartidaBean")
@SessionScoped
public class AgendaPartidaBean {
	
	private AgendaPartida agendaPartida = new AgendaPartida();
	private GrupoEsporte grupoEsporteAdicionado = new GrupoEsporte();
	private List<AgendaPartida> listaPartida = null;

	public void salvar(){
		
		AgendaPartidaRN agendaPartidaRN = new AgendaPartidaRN();
		
		GrupoEsporteRN grupoEsporteRN = new GrupoEsporteRN();
		
		GrupoEsporte grupoSelecionado =  (GrupoEsporte) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("grupoSelecionado");
		//Pega id do grupo
		Integer id = grupoSelecionado.getId();
		grupoEsporteAdicionado = grupoEsporteRN.pesquisarPorID(id);
		
		agendaPartida.setGrupoEsporte(grupoEsporteAdicionado);
		
		agendaPartidaRN.salvarAgenda(agendaPartida);
		
		try {
			FacesContext.getCurrentInstance().getExternalContext().redirect("listarPartidasAgendadas.jsf");
		} catch (IOException e) {			
			e.printStackTrace();
		}
		
	}
	
	
	public List<AgendaPartida> getListaPartida() {
		
		AgendaPartidaRN agendaPartidaRN = new AgendaPartidaRN();
		
		if(listaPartida == null){

			GrupoEsporteRN grupoEsporteRN = new GrupoEsporteRN();			
			
			GrupoEsporte grupoSelecionado =  (GrupoEsporte) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("grupoSelecionado");
			//FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("partidaAgendada", agendaPartida);
			
			//Pega id do grupo
			Integer id = grupoSelecionado.getId();
			grupoEsporteAdicionado = grupoEsporteRN.pesquisarPorID(id);
			
			listaPartida = agendaPartidaRN.listarPartidasPorGrupo(grupoEsporteAdicionado);
			
		}	
		
		return listaPartida;
	}

	public void excluirPartida(){
		AgendaPartidaRN agendaPartidaRN = new AgendaPartidaRN();
		
		agendaPartidaRN.excluirPartida(this.agendaPartida);	
		this.listaPartida = null;
	}	
	
	public void novaAgenda(){
		this.agendaPartida = new AgendaPartida();
	}
		
	public AgendaPartida getAgendaPartida() {
		return agendaPartida;
	}

	public void setAgendaPartida(AgendaPartida agendaPartida) {
		this.agendaPartida = agendaPartida;
	}

	public GrupoEsporte getGrupoEsporteAdicionado() {
		return grupoEsporteAdicionado;
	}

	public void setGrupoEsporteAdicionado(GrupoEsporte grupoEsporteAdicionado) {
		this.grupoEsporteAdicionado = grupoEsporteAdicionado;
	}	

}